﻿/***************************************************************************
 * 文件名：KYProjChangeInterface
 * 功能：
 * 说明：
 * -------------------------------------------------------------------------
 * 创建时间：2024/7/4 10:05:08
 * 创建人：林远
 * 邮箱： 17682102673@qq.com
 * =========================================================================
 *
 * 修改人：   
 * 修改时间：   
 * 修改说明：   
 ***************************************************************************/
using System;
using System.Collections.Generic;
using System.IO.Pipes;
using System.Linq;
using System.Reflection.Emit;
using System.Text;

namespace LY
{
    internal interface IProjChange
    {
        /// <summary>
        /// 从变更来源获取变更信息列表
        /// </summary>
        /// <returns></returns>
        IEnumerable<IProjChangeSourceModel> GetChangeList();

        /// <summary>
        /// 将IProjChangeSourceModel映射到ProjChangeResultModel
        /// </summary>
        /// <param name="source"></param>
        /// <returns></returns>
        IEnumerable<ProjChangeResultModel> Parser(IEnumerable<IProjChangeSourceModel> source);

        /// <summary>
        /// 将项目信息变更落地
        /// </summary>
        /// <returns></returns>
        bool ExecuteChange(IEnumerable<ProjChangeResultModel> targetList);

        /// <summary>
        /// 成功后执行
        /// </summary>
        void Successed();

        /// <summary>
        /// 失败后处理
        /// </summary>
        void Failed();
    }

    /// <summary>
    /// 用于标识类型是否为项目信息变更来源
    /// </summary>
    public interface IProjChangeSourceModel
    {

    }

    public class KYProjChangeModel : IProjChangeSourceModel
    {
        #region Properties

        public string KYXMBH { get; set; }

        public string PCH { get; set; }

        public string BGLX { get; set; }

        public string XMBH {  get; set; }

        public string XMMC {  get; set; }

        public string BMBH {  get; set; }

        public string FZR {  get; set; }

        public string FZRBH {  get; set; }

        public string XMFL {  get; set; }

        public string IFCL { get; set; }

        public string CLR { get; set; }

        public string CLRQ { get; set; }

        public string CF7 { get; set; }

        public string CF8 { get; set; }

        public string CF10 {  get; set; }

        #endregion
    }

    /// <summary>
    /// 云杰项目变更模型
    /// </summary>
    public class ProjChangeResultModel
    {
        #region Properties

        /// <summary>
        /// 项目编号
        /// </summary>
        public string ProjectId {  get; set; }

        /// <summary>
        /// 科研系统项目编号
        /// </summary>
        public string KYProjectCode { get; set; }

        /// <summary>
        /// 变更类型
        /// </summary>
        public string ChangeType {  get; set; }

        /// <summary>
        /// 变更内容
        /// </summary>
        public object ChangeContent { get; set; }



        #endregion
    }
}
